On-Demand Auto-Fill

ABSTRACT

A method for user interaction with a web page includes displaying a web page in a web browser, displaying a user-selectable object outside the web browser on a user interface, receiving a user selection of the user-selectable object and a dragging of the user-selectable object onto the web browser, and causing a command to be performed with the web browser in response to the user selection.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority to U.S. Provisional ApplicationSer. No. 61/415,339, titled “User Interaction in a Web Browsing System”,filed on Nov. 18, 2010, the contents of which are incorporated byreference as if set forth fully herein.

TECHNICAL FIELD

This document relates to systems and techniques for interacting withusers of a web browser or similar application that accepts data input.

BACKGROUND

Much of the interaction that users now have with computing devices nowoccurs on-line—in the so-called cloud. Such interaction has moved fromsimply being able to read text-based web pages, to basic shopping andother services, to rich services that are hosted wholly separate fromthe client computing device that a user may employ. Various programmingtechniques have permitted sophisticated actions to occur at the clientdevice, including actions when the client device is off-line, and thoseactions to be coordinated with a server system that hosts variousservices for users of the system.

Very rich services are thus now possible via a web browser. Modernbrowsers, such as the CHROME browser from GOOGLE INC., of Mountain View,Calif., can run computer code and perform essentially any function thatcan be performed by other native applications. As a result, computerusers are spending more times with their browsers, and the ability tointeract well with a browser has become more important. User of mobiledevice also frequently download web applications and interact with theto perform actions similar to those performed with web pages of plug-insin browsers, such as on-line shopping, game, playing, social networking,and the like.

SUMMARY

This document describes systems and techniques that may be used tointeract with a user of a browser or similar application on a computingdevice, such as a mobile computing device (e.g., a smart phone). Thevarious techniques described here can provide mechanisms for moreintuitive user interaction with a browser or other application,including by making more convenient the switching between pages that arecurrently loaded in a browser (e.g., between tabs in a tabbed browser),by automatically generating favicon's for web page names, by making webpage names in a list such as a favorites or history list interactive, bypermitting convenient yet secure addition of information to fillable webforms, by providing for the display of web page content in differentformats, and by providing convenient mechanisms for selecting objectsand actions in a cascading menu structure.

In implementations described in particular detail in this document,techniques are discussed that allow a user of an application toautomatically fill information into a form, such as a form on a webpage. By the techniques discussed here, a selectable control such as anicon may be displayed, and that selectable control may be correlated tocertain information about a user or the user's device or account. Forexample, a user may have an icon that is associated with each of thevarious credit cards that the user has, and each icon can be correlatedto information about the credit card, such as the credit card number,expiration date, user name, 3-digit code, billing address and the like.Another icon may represent information about the user himself, such ashis name, address, and the like. Each icon may be labeled in a mannerthat makes clear the information that it is a “front” for.

The icons may be normally displayed on a desktop of a device operatingsystem, such as in a traditional grid of icons that float over abackground or wallpaper. Simultaneously, and over a different part ofthe desktop, a user may display a web page or content in a nativeapplication that requires data input from the user. In some instances,the user may type a few letters and the information may be addedautomatically, after having been stored a prior time the user typed insimilar information on another form. However, such a technique mayresult in the user inadvertently supplying information to the page orthe application. As described below, however, a user could supply thesame information by selecting one of the icons discussed above anddragging it into the area of the form that is to receive the input, oronto an icon adjacent to, or that otherwise represents the form. Such anaction by the user may be interpreted as an intent to have all relevantinformation that is fronted by the icon to be added to the form. Forexample, if the form is for a mailing address on an order form, theuser's dragging of his personal icon onto the firm may cause it to befilled out completely, whereas his dragging of a credit card icon ontosuch a form might add his name to the form, but nothing else.

In some embodiments, a method for user interaction with a web page isprovided. The method includes displaying a web page in a web browser,displaying a user-selectable object outside the web browser on a userinterface, receiving a user selection of the user-selectable object anda dragging of the user-selectable object onto the web browser, andcausing a command to be performed with the web browser in response tothe user selection and dragging.

In other embodiments, the user-selectable object comprises payment cardinformation for a user of the web browser, selection of theuser-selectable object comprises dragging the user-selectable object toa payment icon on a web page associated with a merchant, and the commandcauses a payment to be made to an account that corresponds to themerchant, the payment coming from an account that corresponds to thepayment card.

The disclosed methods can provide one or more advantages in certainimplementations. For example, rather than automatically filling webforms, the method can be implemented to require affirmativeauthorization by the user before the web forms are filled withpreviously-stored information—i.e., the act of going to get the icon orother selectable object, and then bring in it back to the form is anintentional enough act to prevent accidental divulgence of information.In scenarios in which the previously-stored information may be sensitivein nature (e.g., credit card information, social security number, dateof birth, etc.), requiring user authorization before the stored data isaccessed or used provides an added layer of security. Using other knownmethods, a user may try to secure such information by keeping sensitiveinformation in trusted places (e.g., only taking out a credit card outof a purse or wallet when a purchase is about to be made). However,constantly having to retrieve the sensitive information from its trustedplace can be time-consuming and inconvenient. For example, if a personis sitting on her bed while using her laptop to make a purchase, itwould be inconvenient for that person to have to go and retrieve herpurse from another room every time she wished to buy an item online. Thedisclosed methods do not require a user to constantly have to retrievethe sensitive information physically, decreasing the likelihood that theinformation may be lost or compromised in transit prior to or afterbeing entered into a web form (e.g., constantly having to retrieve acredit card resulting in misplacing the credit card).

It is further inconvenient for the shopper to have to fill out forms(e.g., credit card information) requiring multiple pieces of informationthat may be prone to typographical errors by the user (e.g., long creditcard numbers). The disclosed methods allow the user to simply click anddrag an icon associated with her credit card in order to obtain hercredit card information and use her credit card to make a purchase.Alternatively, using prior known methods, the shopping page the user isbrowsing may store her credit card information. The disclosed methodadvantageously does not store the sensitive information with a thirdparty (e.g., a third party merchant), protecting the information frompotential security breaches relating to the third party, and furtherrequires the user to affirmatively indicate and intent to submit herinformation.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B are diagrams showing web page previews in a tabbedbrowser system.

FIG. 1C shows a screen shot of a browser having a slidable informationpanel.

FIG. 1D shows an example of using a draggable icon to provideinformation to a web page form.

FIGS. 1E-1I show screen shots of example supplementary controls that canbe provided with a web browser in an operating system.

FIG. 1J shows a screen shot of an operating system displaying thumbnailsof recently visited web pages that a user can select.

FIG. 1K shows a screen shot of an operating system displaying thumbnailsof recently visited web pages that a user can select.

FIG. 1L shows example screen shots of web pages in maximized andminimized forms.

FIG. 1M shows an example of using a draggable icon to provide logininformation to a web page.

FIGS. 2A-2G show screen shots from a system for forming meta-web pages.

FIG. 3 is a screen shot of a chrome-less browser displaying a searchscreen in an operating system.

FIG. 4 is a schematic diagram of a mobile computing device forinteracting with a user of a web browser system.

FIG. 5A is a flow chart of a process for displaying web page previewswhen switching between web pages.

FIG. 5B is a flow chart of a process for interacting with an informationpanel that may be displayed with a web browser.

FIG. 5C is a flow chart of a process for automatically generating afavicon for a web page.

FIG. 5D is a flow chart of a process for providing information toinformation receiving elements on a web page, such as fillable forms.

FIG. 5E is a flow chart of a process for displaying web page data for apage in multiple formats.

FIG. 6 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described here.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

This document describes systems and techniques for providing interactionwith a user of a computing device, such as a mobile smart phone, using,for example, elements of an operating system that runs on the device.The system and techniques may provide various output mechanisms that canbe implemented visually, audibly, or via touch, and input mechanisms forcontrolling the device. Multiple particular example techniques aredescribed here, and the techniques can be implemented individually ortogether with other aspects of an operating system.

Various techniques are described here, and the particular techniques maybe used in combination with each other. One particular techniquedescribed in greater detail in multiple implementations below involvesdragging an icon or other visible object that represents a set of datafrom a source location on a user interface to a target location, wherethe target location represents a receiver of such information, such as aweb form that can be filled out of the user. The user action of draggingthe icon or other object to the receiver may be interpreted by a systemas showing a user intent that the information represented by the objectcan be provided to the form and the form be automatically filled out.While the object (e.g., icon) may be physically located outside abrowser or other application on a visual display, the particularinformation for the object may be stored within or without the browser.For example, the information may be stored in the same way that otherform-filling information is traditionally stored for a browser, and thebrowser may be programed to keep the information secure except inconditions where the user performs the inputs described here (though auser can turn such a feature on or off, in a configuration page). Insuch a situation, the user will need to trust the browser, which isrelatively easy to so since the major web browsers are produced byreputable companies. Alternatively, the information may be stored withthe particular object, and outside a browser or other application towhich the information is to be provided. A browser designer maypublisher an API by which information is to be shared with pages in thebrowser, from such objects. Objects that comply with the API can bedisplayed on a desktop of an operating system, and the operating systemmay mediate data transfer between them according to the rules of theAPI.

FIGS. 1A and 1B are diagrams showing web page previews in a tabbedbrowser system. In general, the displays show how a user of a webbrowser can be shown what obscured pages look like so that they candetermine whether to switch the browser's focus to those pages.

A first display 102 shows a mechanism for previewing obscured pages onepage at a time. In this example, a tabbed web browser is showndisplaying a number of pages such as page 110, which includes a URL andsearch entry area 108, a tab 106, a favicon 106A on the tab, and a pagetitle 106B on the tab, and an information bar 104. Tabs for other pagesthat have been loaded by the browser are also shown, but those pages areobscured—hidden behind the page 110 that is the focus of the browser. Inthis manner, the browser display is much like that of the current GOOGLECHROME browser. The browser in this example can b integrated with thedevice operating itself, and can be the only application to run on thedevice, where any applications to be run by the user must run under thebrowser.

A selectable control 118 in the form of a tab near a periphery of thedisplay, is shown over a small part of the page 110. User selection ofthe tab is described more fully with respect to FIG. 1C.

A pointer 112 is shown over a tab for one of the obscured pages, thusindicating that a user has placed their finger on a touch screen overthe tab, or is hovering the pointer over the tab using an input devicelike a mouse. In response to such action by the user, a preview 114 ofthe web page that corresponds to the tab has been displayed on top ofthe page 110. The preview may be a thumbnail image of the current page,and may be displayed until the user stops hovering over the tab orselects the tab. If the user stops hovering, the preview 114 may simplydisappear, and if the user selects the tab, the page 110 may become anobscured page, the tab where the user was hovering may jump forward, andthe previously obscured page may become the focus page.

FIG. 1B shows a similar application of the concepts discussed here, butwith a preview of multiple pages. In this example, the main page and thebrowser have slid downward in response to a user selection with apointer in an area that was previously above a top edge of the browsersuch as on an operating system background at the very top of a display104. As a result, three previews 114A, 114B, 114C have been displayed inthe now-vacate space above the browser tabs, and in alignment with thetab for the obscured page that corresponds to the particular preview.Again, the previews are thumbnails formed in a familiar manner from acurrent view of each of the obscured pages. Also, the user may returnthe system to its original state and make the previews disappear bymoving their pointer back into the body of the page 110, or they mayswitch the focus to one of the displayed pages by selecting one of thepreviews 114A, 114B, 114C.

The browser as shown in FIG. 1B is more chrome-free than is the browsershown in FIG. 1A. For example, the former browser does not includeinformation bar 104. In a similar manner, various other forms ofbrowsers may include preview mechanisms like those just discussed.

An alternative mechanism for displaying multiple previews is to displaymultiple previews in a manner like the preview 114 in FIG. 1A, analigned beneath each relevant tab. In such a situation, the top of thebrowser would not have to be moved down, through the previews mayobscure part of the page 110 that is the focus of the browser.

FIG. 1C shows a screen shot of a browser having a slidable informationpanel. Again, the browser is a tabbed browser where a number ofdifferent pages have been opened by the browser and one particular page136 is the current focus of the browser.

The information panel 124 may be associated with a selection mechanism126 that is like the selectable control 118 of FIGS. 1A and 1B, where auser selection of the mechanism 126 causes the panel 124 to bedisplayed. When the panel is displayed, it can slide in from off theside of the display 120 and push existing items on the display to theright. Alternatively, and as shown here, the panel 124 may slide overthe top of the page 136 having tab 122, and then may slide back when themechanism (whose arrow changes direction between the two states) isagain selected.

The panel 124 may display a variety of categories of information, and auser may be allowed to select the appropriate categories and layout fortheir panel 124. In this example, the categories include bookmarks 128,web browsing history 130, and a chat application 132. The bookmarks are,as is known, titles and links to web pages that the user has previouslyidentified as being important to them. The history is a list of namesand links to pages that the user has visited. In certainimplementations, the bookmarks and history may be combined into a singlelist. The chat application 132, takes a well-known form and shows iconsof friends who are currently on-line, and provides a mechanism by whichthe user may type notes back-and-forth with those friends (e.g., in atext box 134).

The focus in this figure is on the particular display of the bookmarkssection 128. That section is captioned with an icon and title 128A, andis provided with a listing for each bookmarked page. The history section130 could be similarly displayed, though it is shown generically herefor clarity.

Each entry in the listed bookmarks includes a favicon 128B, a title128C, and dynamic content 128D. The favicon may be provided by apublisher of a web page that corresponds to each entry, or can beautomatically generated by a process like that described in detail inrelation to FIG. 5C. In particular, an image may be taken from the pageto generate the favicon, or a topic for the page may be determined byanalyzing the page, the topic (or topics) may be submitted to an imagelibrary, and one of the results from the library may be reformatted andassigned as the favicon.

The title 128C takes a familiar form. It is static content that providesa plain-english description of the web page, and may be obtained from acorresponding tag that an author of the page has provided.

The dynamic content 128D is appended to the title, and represent avariety of information associated with the page. For example, if a pageis a sports-related page, the dynamic content may include scores fromongoing sporting events (as shown by the ESPN entry in FIG. 1C). If thepage is a front page for a regional newspaper, the dynamic content maybe the current weather in the city of the newspaper (as shown by theStar Tribune and Maui newspaper entries). And if the page is a nationalnewspaper, the dynamic content may be a headline for a current newsstory (as shown by the New York Times and Wall Street Journal entries).

The content may be single content or multiple content. For the former, asingle piece of content may be statically displayed, though updated whena change to the content occurs. For example, the temperature forMinneapolis may be updated in the Star Tribune entry if the temperaturechanges. For the latter, the content may continually change to presentdifferent sub-categories of information that falls under a commoncategory. For example, in the ESPN entry, the scores of all ongoingbaseball games may be displayed in the dynamic content 128D insuccession. The display may be, for example, in the form of a slideshow, where the displayed game clicks from one to the next every severalseconds. The change may also be animated, such as in a horizontallymoving ticker-tape fashion, or in a vertically scrolling fashion, wherethe system can pause when each score has been fully displayed on theline.

The information may be provided in various known manners, such as in afeed like an RSS feed. A relationship may be drawn between theunderlying page and the relevant feed so that the two can b properlycoordinate, in a variety of manners. For example, the page make includea tag that has a reference to the feed, and the browser can read thattag in order to start receiving information from the feed that can beplaced into the dynamic content 128D.

In this manner, the system shown in the figure can provide a user withmuch more useful information in a listing of page names. Such a listingmay then be displayed more frequently by a user, even if such displaytakes up space on the screen. The user may then benefit from havingadditional information and quicker access to pages that are listed inhis or her bookmarks or history list.

FIG. 1D shows an example of using a draggable icon 148 to provideinformation to a web page form. In this example, the icon provides asimple mechanism by which a user can enter the information withouthaving to type it from scratch. Yet the mechanism is more secure thanare auto-filling forms, as the user has to take affirmative actionbefore the information that is represented by the icon 148 can be givento a provider of a web page—that is, the form is not “auto” filled. Inthis manner, the user may have a relatively simple, yet relativelysecure, experience. Particular description of a process is providedbelow in relation to FIG. 5D.

Referring now more particularly to FIG. 1D, there is shown a display 140which may be all or a portion of a graphical display on a computingdevice such as a laptop computer, a netbook, or a smart phone. Shown onthe display, in a mostly chrome-free manner, is a browser 142 thatdisplays a primary web page and shows tabs for a plurality of obscuredweb pages that have been opened in the browser but that are notcurrently the focus of the browser.

An advertisement 144 displayed on the browser 142 on the primary pageincludes an icon 146 that is a selectable control for submittinginformation to a fillable form. In this example, the advertisement is inthe form of a gadget that is rendered in an iFrame element on the page.The advertisement is to receive access to an on-line newspapersubscription, and the user can enter his email address to establish anaccess credential. Mechanisms are also provided for the user to identifyhow long he wants the subscription for, and to select URLs that willtake the user to screens for entering billing information manually(e.g., “epay” and “enter credit card data”).

The advertisement 144, however, also provides a mechanism in the form oficon 146 and its underlying code, to provide credit card and otherbilling information almost fully automatically. The process is not fullyautomatic, however, as it requires a particular affirmative action bythe user. The icon 146 is labeled with the name of such a technology(“drag pay” in this example) so as to alert the user of the availabilityof such a simplified and secure information submission technique. Thus,as shown by the dashed, curved arrow, the user has clicked on the icon148, dragged it over to icon 146 and released, so as to indicate anintent by the user to have his “credit card” information applied to theapplication that underlies the icon 146. The user in this examplepreviously filled out a form with his credit card information so thatthe application underlying icon 148 can pass on that information, andsuch storage and passing of information may be in a format that complieswith a public API so that the application that underlies icon 146 mayproperly handle the information it receives. Receipt of the draggableicon 148 by the web browser indicates user authorization to access userinformation, which, in some instances, may be sensitive in nature.

In other embodiments, the user may drag and drop the icon 148 on othericons, images, text, or other elements for receiving informationsubmissions on the web page. For example, in some embodiments, the usermay drag and drop icon 148 directly onto a fillable web form, causingthe form to be populated with previously-stored information. The formmay contain a single entry to be filled by the user (e.g., “Full name”)or multiple entries (e.g., “last name, first name, street address, city,state, zip code”).

Referring to FIG. 1M, and continuing with features concerning theability to drag content associated with a first item by dragging thefirst item to a second space, there is shown a display 740 which may beall or a portion of a graphical display on a computing device such as alaptop computer, a netbook, or a smart phone. Shown on the display is abrowser 742 that displays a primary web page and shows tabs for aplurality of obscured web pages that have been opened in the browser butthat are not currently the focus of the browser.

A login page for an e-mail account 744 displayed on the browser 742 onthe primary page includes an icon 746 that is a selectable control forsubmitting information to a fillable form. Alternatively, a user maylogin using the entry boxes shown. In this example, the login page 744is in the form of an e-mail login page. The login page requests a userto enter his user name and password to establish an access credential.In this scenario, a user may have a draggable e-mail icon 748 thatcorresponds to an e-mail account he has with the e-mail providerdisplayed on the browser 742. The image or text on the draggable icon748 may correspond with the e-mail page so the user can clearly identifythe draggable icon 748 as being associated with that particular page.Thus, as shown by the dashed, curved arrow, the user has clicked on theicon 748, dragged it over to icon 746 and released, so as to indicate anintent to have his e-mail login information applied to the applicationthat underlies the icon 146. The user in this example previously filledout a form with his e-mail login information so that the applicationunderlying icon 748 can pass on that information, and such storage andpassing of information may be in a format that complies with a publicAPI so that the application that underlies icon 746 may properly handlethe information it receives.

While the example in FIG. 1M relates to an e-mail web page, other typesof login pages are contemplated. For example, other draggable icons maybe used by a user to login on any other type of secured web pages thatrequire a user to enter a user name and a password, such as shopping websites, calendar or scheduling web sites, and photo album web sites.

In some implementations, the user information (e.g., credit cardinformation, login information) is stored by the web browser any timethe user enters user information—but a user may establish the settingsfor the browser so that the information (or at least certain types ofinformation) are not filled in automatically into web forms, but insteadis only filled in when a user performs the sort of functions describedherein.

The browser may, in some embodiments, prompt the user to authorize thebrowser to save the user information or to create a draggable iconassociated with the entered user information. The browser may furtherprompt the user to assign a description to the newly-created iconassociated with the entered user information (and perhaps to select anicon image from a list where the particular content does not plainlyhave an image already associated with it). For example, if the user hasjust entered her credit information, she may label the newly-createdicon “American Express” so that the icon is easily identified for futureuse. In some embodiments, use of the icon (i.e., dragging and droppingof the icon to access the information associated with it) may requirethe user to enter a password or security code to provide heightenedsecurity to prevent unauthorized use of the stored information.

FIGS. 1E-1I show screen shots of example supplementary controls that canbe provided with a web browser in an operating system. In FIG. 1E, atabbed browser is shown with three opened pages on top of a desktop inan operating system. A web page is displayed in the browser, and asearch box is displayed off the upper left corner of the browser wherethe presence of tabs has forced the top of the browser to fall slightlyand thus make room for the search box. The browser is also pushed inslightly from the left edge of the desktop to make way for small iconsalong the left edge of the display, that the user may select in order tohave additional information displayed to them.

FIG. 1F shows the complete column of icons after a user has selected anicon relating to the user's contacts. Such an action has caused acontacts-related panel to slight out from the column of icons, which haspushed the browser to the right in the display. The panel could also beconfigured to slide over the top of the browser. The contactsapplication takes a familiar form, and shows the computer-related statusof various contacts. Other common applications are also represented byicons in the column, and a user may be permitted to add o remove suchicons as they see fit so that they can represent applications that theyuse most often.

In FIG. 1E, the contacts application has become more specifically a chatapplication and its position has changed so that it has now popped upfrom the bottom of the display. The other on screen elements havegenerally stayed the same. The chat application could also be minimizedso that its title bar would appear along the bottom of the display.Title bars for multiple minimized applications could also be displayedadjacent to each other.

In FIG. 1H, a user has selected to see applications supported by theirdevice that are now represented in the column along the left-hand sideof the screen. As a result, a cluster of icons for the variousapplications has been generated, and again the browser has been pushedto the right. In some implementations, the invocation of certainapplication from the column can push the browser to the side, while theinnovation of other application may cause on screen items to begenerated over the top of the browser.

FIG. 1I shows a toolbar that can be generated along the top edge of thedisplay, such as by a user hovering a pointer near the top edge. Thistoolbar takes a form very much like the GOOGLE TOOLBAR, and includes asearch box and icons for a number of features that are supported by thetoolbar.

FIG. 1J shows a screen shot of an operating system displaying thumbnailsof recently visited web pages that a user can select. Such a display canoccur, for example, when a user chooses to minimized the browser shownin the prior figures. As can be seen, such minimizing has cause thebrowser to slide to the bottom of the display so that only the tabs andsome of the toolbar is showing. The thumbnails in this example cover twocategories and take two forms. A first category is the user's mostvisited sites, and the thumbnails may show a near-literal screenshot, inthe shape of a screen, for such pages, much as currently occurs in theGOOGLE CHROME browser, or for the INTERNET EXPLORER browser where theGOOGLE TOOLBAR is installed. The content from the pages may be current(e.g., it may be fetched when the user minimizes the browser) orhistorical (i.e., it may show the sites as they existed the last timethe user visited them).

The other category of thumbnails is a history of recently visited sitesfor the user, and the thumbnails for these sites are variable in size.In particular, they represented the actual content of the entire webpage. Short pages are thus shown at a higher level of magnification andare also relatively short. Longer pages are shown at a lower level ofmagnification and are also long. Also, the thumbnails for recent pagescan be larger than the thumbnails for older pages so as to given abetter visual impression of a timeline. A user can select any of thethumbnails in order to instantiate one of the underlying pages in thebrowser.

FIG. 1L shows example screen shots of web pages in maximized andminimized forms. Such features may permit publishers of page content toprovide long-form and short-form content, and thus to maintain a user'sinterest both when they are focused on the browser and when they arenot. A particular process for provided such functionality is describedin respect to FIG. 5E below.

As shown in the left display, a browser like that in the figures abovehas opened three pages and is focused on one page, the New York Times.In the right display, a user has made a selection to minimize thebrowser, and as a result, the browser in its initial form hasdisappeared (though it may also simply move to the bottom of thedisplay). In its place are onscreen objects that take look like, and canactually be implemented as, widgets or gadgets. Each of the objectscorresponds to one of the previously-opened pages from the browser, anddisplays information that corresponds to the information displayed onthe related page, but in a smaller form.

For example, the first page is a page for the New York Times, whereasthe corresponding object shows the same page title as the page, butdisplays only national headlines because the Times is a nationalnewspaper. The particular headlines may be provided in a news feed fromthe times, where the identifier for the news feed has a directrelationship to the identifier (i.e., URL or partial URL) for the page,so that the browser can readily identify the feed from which it is todraw information in populating the object. As another example, thesecond web page is the local news page for the StarTribune newspaper,and the object shows local news headlines. As with the first object, theheadlines may be part of URLs that a user can click on to be taken tothe web page for the paper that carries the relevant story. Depending onthe wishes of the web page publisher, each page may have a feed, eachsection may have a separate feed, or the entire web site may have asingle feed. Generally, larger sites having funded owners will have morefeeds.

The third page in this example is the ESPN sports site, so the dynamiccontent in the feed is sports scores. More particularly, the user was onthe Major League Baseball page when they minimized the browser, so theyare getting feeds that are specific to baseball games that are currentlybeing played.

FIGS. 2A-2G show screen shots from a system for forming meta-web pages.In general, the meta-pages permit a user to combine various individualpages, each from the same domain or from different domains, in variousmanners so as to create a topical page whose individual components canbe accessed by basic scrolling up and down the meta-page. Thus, forexample, a user could form a meta-page by dragging onto it pages fromall the major national newspapers. Each morning, the user could simplyscroll down through the meta-page to see the headlines from all of thenewspapers (where the meta-page may have its own URL or pseudo-URL thatcan be saved as a bookmark for the user), rather than having toindividually load each page and switch between tabs for each page.

FIG. 2A shows a zoomed-out representation of a meta-page on an operatingsystem desktop. In this example, the meta-page includes two sub-pages—anemail page and a calendar page. So the user has, in effect, create apersonal information manager page.

At FIG. 2B, the user has selected to view the page by clicking on themeta-page in FIG. 2A (a indicated by a lingering selection dot in FIG.2B where the meta-page had previously appeared in FIG. 2A). Here, onecan see a familiar view of the GMAIL email application. FIG. 2C showsthat the user has scrolled down somewhat in the meta-page and is showingboth the GMAIL sub-page and a calendar sub-page below it.

The user has scrolled down even farther in FIG. 2D, to the end of thecalendar sub-page, to a New York Times sub-page. Though not shown here,the user could have added that sub-page by highlighting the meta-page,and then typing “www.nytimes.com” or “New York Times” the search box onthe display. Upon entering such information, the small representation ofthe page may have been added to the meta-page as shown in FIG. 2A. InFIG. 2E, the user has typed the domain for the New York Times into thenavigation box at the top of the display, and the page has jumped sothat the New York Times

In FIG. 2F, the user has scrolled back up to the GMAIL application orhas typed appropriate information into the navigation box to have thescreen scroll up to that same point automatically. The user has alsoselected an icon showing a picture of a friend so as to start a chatsession with that friend. As a result, a chat application has opened asub-window at the top of the display where the users can carry on aconversation.

In FIG. 2G, the meta-page has been minimized an the view has returned tothe desktop. Also, the user has dragged the New York Times sub-page fromthe first meta-page and onto the desktop so as to begin creating asecond meta-page. In addition, the user has since typed two URL's intothe navigation box so as to add pages for those two URL's to thenewly-created second meta-page. The user may then select one of thereduced-size renderings of one of the two meta-pages so as to continuetheir work.

FIG. 3 is a screen shot of a chrome-less browser displaying a searchscreen in an operating system. This view again shows icons in a verticalcolumn along a left edge of the display (though it could be shownagainst other edges or as a floating toolbar). The page displayed in thebrowsers is a GOOGLE search home page, and the display also shows auniversal search box on top of the page, where the user may enterqueries into either search box. Also in this example, a graphicalhistory is shown along the right edge of the display, where thumbnailsof recently visited pages are showing with increasing overlap, so thatrecent pages can be seen fully, and more distant pages can be seen lesscompletely.

FIG. 4 is a schematic diagram of a mobile computing device forinteracting with a user of a web browser system. The device is shownhere in the form of a smart phone, but make take various other forms,such as a desktop personal computer, a netbook, or a laptop computer. Inthis example, the mobile device 402 is a slider-based smart phone havinga touch-screen 404 for input and output and a trackball 406 as analternative input mechanism.

The display 404 shows an example of a mapping application beingdisplayed in a chrome-free browser a manner like the pages above, andalso an information panel like that discussed above.

A number of components are shown schematically inside the device 402 toindicate components in the device that are associated with the features,and used to implement the features, discussed in more detail above andbelow. One or more of the components may be implemented as part of aprogrammable microprocessor on the device 402, though the particularcomponents are shown separately in this example for clarity ofexplanation. Other arrangements of components are also contemplated.

The device 402 includes a display manager 408 to control variouselements to be shown to a user on the touch-screen 404, while an inputmanager 412 manages inputs received from the touch-screen or othermechanisms such as trackball 406. The display manager may receiveinformation from various applications and from other components of theoperating system, and may determine what elements to display in relationto other elements, which elements to hide, and how to show visibleelements in relation to each other. The input manager 412 may coordinatewith the display manager so as interpret actions that a user takes withthe device. For example, a user may place their finger on the touchscreen 404 or may move a pointer on the touch screen 404 and then make aselection. The input manager 412 may refer to the display manager todetermine what item the user selected by such an action, and maygenerate an event that may be reported to various other components thatmay be subscribing to such an event, such as by using event manager 410.

The device 402 may be provided with various services that may be madeavailable to applications running on the device and/or to the operatingsystem of the device. For example, a GPS module, which may be a commoncommercially-obtained module, may make determinations about a locationof the device 414 and provide such information to various applications,such as applications that provide driving directions, that provide theuser's location for reference by friends of the user through a socialnetwork, and the like. In a similar manner, a spelling corrector 416 mayprovide a service that is generally available to various applicationsrunning on the device, so that those applications can correct data thatthe user has input or otherwise notify the user about problems with theinput.

Various physical output mechanisms may also be provided in the device402. For example, a vibrator may be provided to give haptic feedback toa user. The vibrator may have an associated controller (not shown) thatcan be called by various applications or services on the device. Forexample, the spelling corrector 416 may cause the device to vibratewhenever a spelling error is identified by the spelling corrector 416.Also, a sounds controller 424 and related audio speaker may be providedto give a user additional feedback, such as in the form of tones orsynthesized speech.

Various applications 418, 420 may run on the device and may provide datafor graphics to be displayed through the display manager 412. Theapplications may be part of an operating system on the device 402, ormay be added by a user of the device, such as from an on-linemarketplace. In this example, a first application is a mappingapplication and may run as a standalone application or an application orplug in that runs in browser application 420. The browser applicationmay be a standalone application or a component that is built into anoperating system that runs on the device 402, and may generate displayslike those described in detail elsewhere in this document.

Various messages for the operating system and the applications may bereceived over a network such as a wireless communications networkconnected to the internet, via a wireless interface 426. Informationreceived from the network, such as from one or more remote servers, maybe provided to the applications 418, 420, and information may be passedfrom the applications 418, 420 back to the network.

In addition, various forms of storage, including volatile storage andpersistent storage, may be provided on the device 402. The persistentstorage may include various data stores, such as application data 428,dictionary data 430, and user information 432. The dictionary, asdescribed above, coordinates with and is used by the spelling corrector416. The application data 428 may include whatever data the variousapplications need in order to perform their functions. Depending on theapplication, more or less data may be stored locally on the device 402as opposed to being stored on a remote server system. For example,certain devices may store data for a mapping application locally,whereas others may obtain mapping data (e.g., map tiles that show imagesof a portion of a geographic area) from a remote server as a usernavigates on a map, and may dump the data soon after.

The user information 432 may include specific information about one ormore users of the computing device 402. For example, the userinformation may include profile information for the user, as well assetting information that controls the interaction of the device 402 withthe user, and that can also control the manner in which variousapplications operate on the device 402. Although three various datastores are shown here for clarity, much other information would be andcan be stored on device 402, and need not be arranged as shown here.

FIG. 5A is a flow chart of a process for displaying web page previewswhen switching between web pages. In general, the process involvesdisplaying, in response to user input, representations of web pages thatare open in the browser but that are not currently the focus of thebrowser, such as secondary pages in a tabbed web browser. Therepresentations of the pages may be formed as thumbnail images of theobscured pages, and may be shown to a user when the user is determiningwhich page to switch to, in matters like the examples shown in FIGS. 1Aand 1B above.

The process begins at box 502, where a computing device displays a webbrowser window that has one or more visible open pages on it and one ormore obscured pages. An open page in this example can be a single webpage, or a meta page that is constructed from multiple separate pages asdescribed with respect to FIGS. 2A-2G above. A web page may also takeother formats, and may display content that is remote from the computingdevice, or content that is local to the computing device, or both, andcan be made up of any appropriate type of display that can be generatedon a pane or tab for a web browser.

The visible open page will generally be represented as a page that laysvisually on top of the obscured pages. The obscured pages generally willhave most or all of their page content hidden behind the visible page,with a visual element, such as a tab, extending from an edge of thevisible page. The extending element, such as a tab, can generally beselected by a user by clicking on the element, which will cause theselected obscured page to become the visible page by visually moving infront of the page that was previously the visible page. Other obscuredpages may then be selected in a similar and familiar manner by the user.

At box 504, the process receives a user input indicating an intent bythe user to check the obscured pages. For example, the user may want toreview content that they believe is on one of the obscured pages, butthey may want to check the pages before making a switch because they arenot sure which page contains the desired content. Alternatively, a usermay desire to determine whether content on a page has been updated sincethe last time they reviewed it, but without having to switch entirely tothat page. As a result, the user may wish to see a form of page previewfor each of the obscured pages so that they can make a determinationwhether to switch to one of such pages.

The user may express their intent to check the obscured pages in avariety of ways. As one example, a user may express the intent to see apreview of a particular obscured page by hovering their pointer over atab for that page. The user may express intent to receive a preview ofall of the steered pages by hovering their pointer above an area whereall the tabs are displayed, such as a background area that appearsaround the tabs for the web browser. Alternatively, a user may provide avoice command indicating an intent to preview pages, such as by speaking“switch page.” Also, the user may indicate such intent by way of akeyboard input, such as by entering a key combination. One suchtechnique for switching between applications in an operating system isthe ALT-TAB key combination of MICROSOFT WINDOWS.

At box 506, the process grabs a screenshot of one or more of theobscured pages. Such acquisition of an image of the page may occur inreal time after the user indicates their intent, so as to provide a mostupdated image of the page, or may have occurred previously, such as thelast time the user loaded the page, or at another appropriate time.Acquisition of the image may occur in various known manners, and theparticular manner may depend on the level of resolution desired, thesize of the preview desired, and other similar factors. The image may begenerally of a reduced size compared to the entire page, and be knowncommonly as a thumbnail image of the page, so that it may be displayedconveniently to a user without obscuring a large portion of the displayon the computing device. The term thumbnail is used here to representsuch an image that is substantially reduced in size from the sourceimage that is represented by the thumbnail.

At box 508, the computing device displays the thumbnails of the one ormore obscured pages adjacent to the page tabs. Such display may of allor fewer of the steered pages. For example, where the display is invokedby a user hovering over a tab for a particular page, the display may beof that page only. However, when the input by the user indicates anintent to review more than one obscured page, the display may be of allof the pages, and the thumbnails may be aligned in a manner like thatshown in FIG. 1B above.

At box 510, the system receives a user selection of a thumbnail or acorresponding tab for the thumbnail. For example, where a user hasclicked on a display to invoke a thumbnail selection process, the usermay subsequently click on one of the thumbnails that is displayed toindicate their interest in having the page associated with a thumbnailbecome the focus page for the web browser. Alternatively, where a keycombination is used to start the process, the selection may be made byreleasing the selected keys.

At box 512, the process changes the selected obscured page to a visiblepage, and changes the previously visible page to an obscured page. Suchtransition is similar to known processes of switching a tab that is thefocus in a tabbed browser system. In particular, the previously obscuredpage may be moved visually forward in a group of tabbed pages is so thatits tab is shown extending from the page, and other tabs are shownextending from behind the page so as to indicate visually that the otherpages are obscured behind the new page that is the focus of the browser.The user may then make additional selections to change pages, repeatingthe above process, and the thumbnails that were previously displayed maybe maintained in position for the user or may be removed, and thebrowser display may return back to its general orientation from beforethe user indicated an intent to change to a different page.

FIG. 5B is a flow chart of a process for interacting with an informationpanel that may be displayed with a web browser. In general, the processinvolves displaying a panel in relation to a web browser, where thepanel includes particular information about the web browser and pages tobe displayed on the web browser. The information may include, forexample, information that is correlated to pages that a user hasbookmarked, or that are in a user's recent browsing history.

At box 514, a webpage is displayed along with a panel-invoking control.In this example, the information panel is not initially displayed withthe browser, so that the maximum amount of screen space may be devotedto displaying the web page itself, rather than controls for the browser.The panel-invoking control may be displayed as a small visual elementnear the edge of the page or the browser, and may take the form of anicon where the icon visually indicates to a user that its selection willcause information that is currently hidden off the edge of the displayto be moved onto the display. As one example, the icon can include anarrow or other similar visual cue that shows that selection of the iconwill cause such a transition to occur.

At box 516, a computing device receives a user selection of thepanel-invoking control. Such a selection may occur in a variety ofmanners, such as by a user clicking on the panel-invoking control, theuser clicking on the control and dragging the control inward toward themiddle of the display, or a user swiping onto a touchpad from off thesurface of the touchpad and into the touchpad at a side of the touchpadthat corresponds to the side of the browser in which the control isdisplayed.

At box 518, but information panel is animated into position over the topof a part of the web page, by sliding the panel off the hidden edge ofthe display and onto the display. Alternatively, the panel may push theweb page to the side and be displayed adjacent to the web page. Thepanel can display a variety of information and include a number ofcontrols that are selectable by the user. For example, the panel maydisplay a list of bookmarks in the form of titles of web pages that theuser has previously indicated to be of interest to them, as is wellknown. The panel may similarly display a list of pages that representrecent pages the user has visited, in the form of a history of pages.The display of bookmarks and history may also be combined, so thatbookmarks are automatically selected by the browser as pages that theuser has visited frequently in the past, and are automatically arrangedinto topical groups or other standards, including the frequency withwhich the user has visited those pages. For example, a list of pages maybe initially sorted in a reverse chronological order to represent pagesthat the user has visited recently, but pages that have been visitedfrequently may be elevated in the ranking in the list of pages abovepages that have been visited recently but infrequently. The informationpanel may also display information controls for other topics, such as agraphical display of a chat application showing friends of the user whoare currently online, and controls to change settings for the browser,such as security settings and the like. In addition, the panel mayinclude a search box into which a user may enter a search query in afamiliar manner.

At box 522, the process fetches real time information about web pagesfrom providers of the web pages. The web pages from which information isfetched can include the web pages listed in the history or bookmarks. Toobtain the information, the process (via the computing device on whichthe device is running) may make a call to the web page itself, the webpage may include tags or other information that designate brief,updated, summary information for the page, and the browser may extractsuch information. Alternatively, the process may make a call to a pagethat is related to the underlying web page, such as a page having thesame name as the underlying web page but that is located in an adjacentpredetermined path relative to the underlying web page or that has anextension that differs from that of the underlying web page but that hasthe same name.

The information provided to the process may take a variety of forms butgenerally takes a form of information that can be displayed in a verysmall space and that relates to the underlying webpage. Such informationcommonly can include news headlines, sports scores, press releaseheadlines, and other brief and topical information associated with theunderlying web page.

At box 524, the real-time information that has been gathered relating tothe web pages is added to the titles of the web pages listed indisplayed to the user. For example, as the information is received, itmay be added to the right of the web page names in the history orbookmarks list that is displayed in the information panel. Such realtime web page information may be displayed statically or dynamically.Static display may involve showing a single set of information in thepanel and maintaining that information in the panel. Dynamic display mayinclude showing initial information in the panel and then changing toadditional information, such as in the form of a textual slideshow, orin a ticker-tape type of presentation.

Using this process, then, a browser may make lists of web page titlesthat are more useful to a user of the browser, and the user may leavethe information panel in place while they are browsing (because of itsadded usefulness) instead of removing it from the display of theircomputing device. For example, a user may appreciate seeing headlineupdates for their various favorite pages and thus may leave the panelopen to the side of the pages. Also in this manner, basic Web bookmarksmay gain some advantages of web widgets or gadgets, by having dynamiccontent displayed along with the web page names represented by bookmarkor history listings.

FIG. 5C is a flow chart of a process for automatically generating afavicon for a web page. In general, the process involves identifying webpages that do not have a favicon and generating automatically validfavicons for those pages. A favicons is generally understood to be asmall icon corresponding to a web page or web site that helpscommunicate to a user of a computing device the identity of that website. Icons are frequently shown in title bars of web browsers when aweb page is displayed, or next to a list of web page titles when a webpage history or bookmarks are displayed. Favicons may be useful inhelping a user quickly identify a particular web page in a list of manyweb pages, without having to carefully read each of the web page titles.

The process begins at box 526, where a command is received to show a webpage title. The command may be implicit, such as by a user selecting acontrol to show a list of bookmarks or a web page history that includemany web page titles. Also, the command may be implicit in a user typingin a URL of a webpage, a browser opening the webpage, and the browserincluding in a title bar a name or the webpage and a favicon for thewebpage.

At box 528, a decision is made about whether the page includes its ownfavicons. Such a decision may be made in a familiar manner by accessingor attempting to access a file where a favicon would be stored. If afavicons is identified, it may be displayed with the title of the webpage, as shown at box 503 rd.

If no favicons for the page is identified, a process may begin to createautomatically a favicon for the webpage. By this process, at box 532, apage URL for the relevant web page is submitted to a page classifier.The page classifier may include, for example, a classifier that analyzeswords and metadata regarding a page, and perhaps other pages at asimilar addresses or links to the page, and generates one or more wordsthan are topics for the page. For example, a Bayesian analysis may beused to group words and compare them to groupings of words for otherpages, so as to identify topics for the page. The page classifier may bea service that can be accessed externally by the process, such as aservice used to classify pages for the GOOGLE AD SENSE service. As oneexample, a sports-related web site may have a number of articles, or apage of that site may have an article, that uses the names ofprofessional athletes and words like baseball, bases, steal, game, andother such words. An analysis of that page could generate the term“baseball” or the term “Major League Baseball” as a topic for the page.

At box 534, the process receives from the page classifier the pagetopics. The page topics may be received, for example, in the form ofsingle or multiple words, including, from the prior example, the term“Major League Baseball.” One or more received terms may then besubmitted to an image database, such as the GOOGLE IMAGE SEARCH service.A submission may also be accompanied by one or more parameters, such asa parameter to request images of a certain size or type. For example,small images that are easily converted into a favicon can be requested,so as to avoid gathering images that have too much detailed forreduction. Also, the request may be made for only line drawing images,as those images may be easier to reduce in size satisfactorily.

Where the page classifier returns multiple terms, the multiple termsmaybe he submitted to the image database, and one image may be selectedfrom all the results returned from the multiple requests. For example, ahighest-match image that is common to the search results from multipleof the requests may be selected as the most relevant image.Alternatively, an image that is determined to be the most relevant andyet of a quality that can be reduced satisfactorily, such as a linedrawing, may be selected. Multiple best images may also be selected, andmay then be displayed as an animated favicon that indexes through themultiple images.

The image for the favicon may also be selected as an image that is onthe page itself. For example, the process may determine that an imagenear the top of a page is likely to be a logo for a company, may extractthat image from the page, may crop the image to make it square or tofocus solely on the logo, and may convert the image to a favicon.

An image may also be built up by the process, rather than being apre-existing image that is selected. In the example above, the faviconcan be represented by the letters “MLB”, by determining that thoseletters correspond to the topic Major League Baseball. Also, the imagedatabase may be made up of a limited set of images having an associatedtopic that corresponds to topics generated by the classifier. Forexample, an image of a football and baseball may be associated with theterm “sports,” and that image may be used whenever the classifierreturns the word “sports” for a page.

At box 536, the process determines a color for the favicon. Selecting acolor or a favicon may further help a user of a web browser quicklyidentify the favicon. For example, certain organizations or topics arereadily associated with a particular color (e.g., UPS and brown), and auser of a computing device may more quickly form such an association intheir mind, than if the color were absent. Selecting the color may occurin various manners, such as by identifying a background color or thepage, a color for a logo that is imaged near the top of the page, or byother mechanisms. The color may then be applied to the image that wasselected in the prior steps, such as by applying the color as abackground color for the Favicon.

At box 538, a custom favicon is generated and is displayed in the webbrowser next to the page title. The favicon may also be stored, eitheron a user's computer device or on a server, so that the preexistingfavicon may be served to the user when they display the name of the website in the future. Also, the favicon as generated may be shared withother users through a server system that is associated with the webbrowser. Moreover, the server system itself may perform the processdescribed above in a bulk manner, by identifying pages that it hasindexed but that do not have favicons, and the analyzing such web pagesand subsequently making the generated custom favicons available for useby instances of the web browser that user might employ.

FIG. 5D is a flow chart of a process for providing information toinformation-receiving elements on a web page, such as fillable forms. Ingeneral, the process involves providing the data to an element such as afillable form in a webpage in a relatively secure manner. The processbegins at box 540 where a web page having a fillable form is displayed.The fillable form may be presented in a variety of manners, including bydisplaying a plurality of text entry boxes into which a user may typeinformation, such as personal information for ordering a product orservice. The fillable form may also be displayed as an icon into which auser may visually place information, as next described.

The information to be provided to the fillable form may be any relevantinformation, but frequently includes personal, financial, or securityinformation for a user. For example, a user who orders a product on-linemay need to submit shipping address and credit card information.

Such forms may be auto-filled in common practice, but a user may notwant to have certain information, such as credit card data, filledautomatically (e.g., in response to no input from the user, or inresponse to the mere input of a few letters in a field). At the sametime, the user may not want to have to locate their credit card and thentype in their credit card information manually every time they buy aproduct on line. Thus, such a user may be provided with a applicationthat takes their information and associates it with a desktop icon.Generally, the icon may be represented outside of the browser andsecured from access by the browser or content in the browser. As shownat box 542, the user who is faced with a fillable form such as thatshown in FIG. 1D, may select the icon and drag it onto the web pagewhere the visual element (the target element) associated with thefillable form is located.

Upon determining that such a combination of moves, from a sourcelocation to a target element, have been made by the user (boxes 542,544), the process may infer that the user would like to have theirinformation submitted to the form. Such a process requires a sufficientlevel of deliberate action by the user so as to substantially remove therisk that the user would submit such information inadvertently. Yet thesubmission of the information by the user is relatively easy andintuitive, and much easier than typing the information from scratch.

The process may also include security to ensure that providers of webpages do not illicitly or accidentally receive information that a userdoes not intend to share. For example, when the user sets up the iconfor sharing data, the corresponding application may require the user tofill out a security profile that identifies the types of security to beapplied to the information. Also, when the user attempts to drag theicon onto a control for a fillable form, the system may display awarning that reminds the user that he or she is sharing such information(including by identifying the particular information that is beingshared), and asking the user to confirm that he or she wants to sharethe information. Once the security checks are met, the information ispassed to the provider of the web page (box 548) in a familiar manner,including over a secure connection.

As noted above, the information can be stored inside or outside thebrowser itself. When stored inside, the information may be stored justlike other auto-fill information is traditionally stored, through thebrowser may be programmed to prevent such information from filling aform until the conditions discussed here (e.g., dragging an icon fromoutside the browser and onto a canvas on the browser) are met.Alternatively, the information may be stored with the object and awayfrom the browser, so as to provide greater security. The object and thebrowser may then interoperate according to an established API in orderto get the information into the relevant form or other target area.

FIG. 5E is a flow chart of a process for displaying web page data for apage in multiple formats. In general, the process involves displayinginformation for a web page in multiple styles. In a first style, theinformation is displayed as a full-featured web page in a browser, andin a familiar manner. Normally, when such a page is minimized, orreduced in size, only the page title is displayed (e.g., in a systemtray) or the original full-featured page is shown in an arbitrarilytruncated manner—e.g., if a user pulls the right edge of a browserwindow to the left, the text of the page is cut off or it wraps at thenew edge of the window, but the content is the same. In this process,the second style may be more akin to a gadget or widget whose content iscoordinated with the content of the base web page.

The process begins at box 550, where one or more web pages are displayedin a familiar manner by a web browser. At box 552, a user provides acommand to minimize the browser and the underlying pages. At box 554,the process minimizes the pages, such as by providing a selectablecontrol in a system tray, where a user selection of the control cancause the browser to be maximized again.

At box 556, the process instantiates graphical user interface displayobjects in the form of widgets or gadgets that each correspond to one ofthe previously-displayed web pages (to the extent those pages supportthe process described here). In referring to widgets or gadgets here, werefer to programming mechanisms that display data in relatively smallareas, and generally on top of an operating system background. Thewidgets or gadgets may display information that directly correlates tothe corresponding minimized page. For example, if the page was abaseball page from a sport site, the object may display up-to-datebaseball scores from around the league. If the page were the front pageof a newspaper, the object may display headlines from that page. A userselection of any of the content displayed in the object may cause thebrowser to be re-displayed automatically, with its focus on theparticular item that the user selected. For example, if the browserpreviously displayed a baseball page, and a user selects a particularscore in the object that appears when the page is minimized, a real-timebox score may be automatically displayed in a tab of the browser whenthe browser is re-displayed. The prior baseball page may be maintainedin another tab or may be removed.

At box 558, the process accesses feeds from the appropriate web pages.The feed may be accessed in known manners, such as how widgets andgadgets currently receive information. The pointer for the appropriatefeed may come from a tag that is on the original web page itself, wherethe publisher of the web page takes on the responsibility of publishinglong-form and short-form representations of coordinated information as aservice that makes more users want to visit a site operated by thepublisher. Mechanisms may also be provided so that a user can define thetype of information from a particular page or publisher that isdisplayed in an object. For example, a user may define that they want tosee current scores when they minimize a sport-related site, rather thanreceiving headlines.

At box 560, the information received from the feeds is displayed in theobjects while the page is minimized. Such information may be constantlyupdated, such as by adding headlines to the top of a list of headlinesin a topic, as those new headlines emerge. At box 562, the systemreceives a user command to maximize the browser, and in response, itdisplays the pages again according to how they were displayed before thebrowser was minimized. In some instances, user interaction with theobjects while the browser was minimized can be interpreted and providedto the browser so that the pages displayed when the browser is maximizedare different than the pages from when the browser was minimized.

In this manner, web page publishers may maintain presence in front ofusers even when their pages are minimized, and user may obtain detailedinformation when such is there focus, and related summary informationwhen they want to focus more on other topics. The provision of theinformation in long and short form is also coordinated, so that a usercan identify the topic in which they are interested (e.g., by navigatingto a web page on the topic), and can have access to short-forminformation on that topic without separately finding a separate sourcefor such information.

FIG. 6 shows an example of a generic computer device 600 and a genericmobile computer device 650, which may be used with the techniquesdescribed here. Computing device 600 is intended to represent variousforms of digital computers, such as laptops, desktops, workstations,personal digital assistants, servers, blade servers, mainframes, andother appropriate computers. Computing device 650 is intended torepresent various forms of mobile devices, such as personal digitalassistants, cellular telephones, smart phones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

Computing device 600 includes a processor 602, memory 604, a storagedevice 606, a high-speed interface 608 connecting to memory 604 andhigh-speed expansion ports 610, and a low speed interface 612 connectingto low speed bus 614 and storage device 606. Each of the components 602,604, 606, 608, 610, and 612, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 602 can process instructions for executionwithin the computing device 600, including instructions stored in thememory 604 or on the storage device 606 to display graphical informationfor a GUI on an external input/output device, such as display 616coupled to high speed interface 608. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices600 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 604 stores information within the computing device 600. Inone implementation, the memory 604 is a volatile memory unit or units.In another implementation, the memory 604 is a non-volatile memory unitor units. The memory 604 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In one implementation, the storage device 606 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 604, the storage device 606,memory on processor 602, or a propagated signal.

The high speed controller 608 manages bandwidth-intensive operations forthe computing device 600, while the low speed controller 612 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 608 iscoupled to memory 604, display 616 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 610, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 612 is coupled to storage device 606 and low-speed expansionport 614. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 624. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. Alternatively, components from computing device 600 may becombined with other components in a mobile device (not shown), such asdevice 650. Each of such devices may contain one or more of computingdevice 600, 650, and an entire system may be made up of multiplecomputing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, aninput/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The device 650 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 650, 652,664, 654, 666, and 668, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 652 can execute instructions within the computing device650, including instructions stored in the memory 664. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 650, such ascontrol of user interfaces, applications run by device 650, and wirelesscommunication by device 650.

Processor 652 may communicate with a user through control interface 658and display interface 656 coupled to a display 654. The display 654 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 656 may comprise appropriatecircuitry for driving the display 654 to present graphical and otherinformation to a user. The control interface 658 may receive commandsfrom a user and convert them for submission to the processor 652. Inaddition, an external interface 662 may be provide in communication withprocessor 652, so as to enable near area communication of device 650with other devices. External interface 662 may provide, for example, forwired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 664 stores information within the computing device 650. Thememory 664 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 674 may also be provided andconnected to device 650 through expansion interface 672, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 674 may provide extra storage space fordevice 650, or may also store applications or other information fordevice 650. Specifically, expansion memory 674 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 674may be provide as a security module for device 650, and may beprogrammed with instructions that permit secure use of device 650. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 664, expansionmemory 674, memory on processor 652, or a propagated signal that may bereceived, for example, over transceiver 668 or external interface 662.

Device 650 may communicate wirelessly through communication interface666, which may include digital signal processing circuitry wherenecessary. Communication interface 666 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 668. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 670 mayprovide additional navigation- and location-related wireless data todevice 650, which may be used as appropriate by applications running ondevice 650.

Device 650 may also communicate audibly using audio codec 660, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 660 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 650. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 680. It may also be implemented as part of asmartphone 682, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention. For example, much of thisdocument has been described with respect to television advertisements,but other forms of future, viewership-based advertisements may also beaddressed, such as radio advertisements and on-line videoadvertisements.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

1. A method for user interaction with a web page, the method comprising:displaying a web page in a web browser; displaying a user-selectableobject outside the web browser on a user interface; receiving a userselection of the user-selectable object and a dragging of theuser-selectable object onto the web browser; and causing a command to beperformed with the web browser in response to the user selection and thedragging.
 2. The method of claim 1, wherein the user-selectable objectcorresponds to contact information for a user of the web browser,dragging of the user-selectable object comprises dragging theuser-selectable object to a web form, and the command causes the webform to be filled out automatically with the contact information.
 3. Themethod of claim 2, wherein the user-selectable object corresponds topayment card information for a user of the web browser, dragging of theuser-selectable object comprises dragging the user-selectable object toa payment icon on a web page associated with a merchant, and the commandcauses a payment to be made to an account that corresponds to themerchant, the payment coming from an account that corresponds to thepayment card.
 4. The method of claim 1, wherein the user-selectableobject corresponds to login information for a user of the web browser,dragging of the user-selectable object comprises dragging theuser-selectable object to a web form, and the command causes the webform to be filled out automatically with the login information.
 5. Themethod of claim 1, wherein the displayed web page further displays anapplication, and wherein causing the command to be performed comprisesapplying information relating to the user and corresponding with theuser-selectable object to be applied to the application.
 6. The methodof claim 1, wherein receiving the dragging of the user-selectable objectonto the web browser provides authorization to the web browser to accessinformation relating to the user and corresponding with theuser-selectable object.
 7. The method of claim 1, wherein the displayedweb page further displays a web form, and wherein causing the command tobe performed comprises filling the web form with information relating tothe user and corresponding with the user-selectable object.
 8. Themethod of claim 1, wherein receiving the user selection of theuser-selectable object and the dragging of the user-selectable objectonto the web browser comprises receiving the dragged user-selectableobject at an information-receiving element that is visibly displayed onthe web page.
 9. The method of claim 8, wherein theinformation-receiving element is an icon that comprises a selectablecontrol for submitting information.
 10. The method of claim 8, whereinthe information-receiving element comprises a fillable form.
 11. Themethod of claim 1, wherein the command comprises prompting the user toenter a password.
 12. A computer-implemented method comprising:displaying a form for user entry of user information on a web page in aweb browser; receiving a user entry of user information using the form;storing the user information in the web browser; and creating auser-selectable object, in the form of a movable icon, that isassociated with the stored user information.
 13. The method of claim 12,further comprising receiving a user dragging of the user-selectableobject onto a web browser that displays a web page associated with theuser-selectable object.
 14. The method of claim 13, further comprisingcausing a command to be performed with the web browser in response tothe user dragging.
 15. The method of claim 12, wherein storing the userinformation comprises encrypting the user information.
 16. The method ofclaim 14, wherein the stored user information comprises payment cardinformation for a user of the web browser, the method further comprisingreceiving a user selection of the user-selectable object and a draggingof the user-selectable object onto the web browser, wherein selection ofthe user-selectable object comprises dragging the user-selectable objectto a payment icon on a web page associated with a merchant; and causinga payment to be made to an account that corresponds to the merchant, thepayment coming from an account that corresponds to the payment card. 17.The method of claim 14, wherein the stored user information comprisespayment card information for a user of the web browser, the methodfurther comprising receiving a user selection of the user-selectableobject and a dragging of the user-selectable object onto the webbrowser, wherein selection of the user-selectable object comprisesdragging the user-selectable object to a payment icon on a web pageassociated with a merchant; and causing the form be filled with thepayment card information.
 18. The method of claim 14, wherein causingthe command to be performed with the web browser in response to the userselection and dragging comprises filling the form using the stored userinformation.
 19. The method of claim 14, wherein receiving the draggingof the user-selectable object onto the web browser comprisesacknowledgement of receiving authorization at the web browser to accessthe stored information.
 20. The method of claim 18, wherein causing thecommand to be perform further comprises prompting the user to enter apassword prior to filling the form with the stored user information. 21.A computer-implemented system comprising: a web browser arranged toreceive web page data and display one or more web pages, including a webpage having a fillable form; and a user-selectable object arranged to bedisplayed outside the web browser on a user interface, the user-selectedobject corresponding to stored user information and selectable to bedragged onto the web browser, and the web browser programmed to causethe web form to be filled with the stored user information in responseto the dragging.